<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
    <script src="../js/vue.js"></script>
</head>

<body>
    <div id="root">
        <!-- 遍历数组 -->
        <h2>列表过滤</h2>
        <input type="text" v-model="keyWords" placeholder="请输入要查询的关键字？">
            <ul>
                <li v-for="(item,index) in filPersons ":key="item.id">
                    {{item.name}}-{{item.age}}-{{item.sex}}
                </li>
            </ul>

    </div>
    <script>
        Vue.config.productionTip = false;

        //用watch实现
        //#region
        // const vm = new Vue({
        //     el: "#root",
        //     data: {
        //         keyWords:"",
        //         persons: [
        //             { id: 0, name: "马冬梅", age: 18, sex:"女" },
        //             { id: 1, name: "周冬雨", age: 26, sex:"女" },
        //             { id: 2, name: "周杰伦", age: 31, sex:"男" },
        //             { id: 3, name: "温兆伦", age: 41, sex:"男" }
        //         ],
        //         filPersons:[]
        //     },
        //     watch:{
        //         keyWords:{
        //             immediate:true,
        //             handler(newvalue){
        //                   this.filPersons = this.persons.filter((item) => {
        //                     return item.name.indexOf(newvalue) !== -1;
        //                 })
        //             }
                  
        //         }
        //     }
        // })
            
        //#endregion
         
        //用computed实现
        const vm = new Vue({
                el: "#root",
                data: {
                    keyWords: "",
                    persons: [
                        { id: 0, name: "马冬梅", age: 18, sex: "女" },
                        { id: 1, name: "周冬雨", age: 26, sex: "女" },
                        { id: 2, name: "周杰伦", age: 31, sex: "男" },
                        { id: 3, name: "温兆伦", age: 41, sex: "男" }
                    ]
                },
               computed: {
                    filPersons() {
                        return this.persons.filter((item) => {
                                return item.name.indexOf(this.keyWords) !== -1;
                            })

                    }
                }
            })
    </script>
</body>

</html>